Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


vendor/rns_filesync/scripts/bake_meta.py 9f71f3420c18d5800afb493b723c328d23c7ea12 (9f71f342) Text, 3.09 KB

T8b949e#!/usr/bin/env python3
T8b949e"""Bake version, build date, and git commit into rns_filesync/_meta.py."""

Tff7b72from T7ee787__future__ Tff7b72import Te6edf3annotations

Tff7b72import T7ee787os
Tff7b72import T7ee787subprocess
Tff7b72import T7ee787sys
Tff7b72from T7ee787pathlib Tff7b72import Te6edf3Path

Te6edf3ROOT Tff7b72= Te6edf3PathTb4b4b4(Tff7b72__file__Tb4b4b4)Tff7b72.Td2a8ffresolveTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffparentsTb4b4b4[T79c0ff1Tb4b4b4]
Te6edf3META Tff7b72= Te6edf3ROOT Tff7b72/ Ta5d6ff"Ta5d6ffrns_filesyncTa5d6ff" Tff7b72/ Ta5d6ff"Ta5d6ff_meta.pyTa5d6ff"
Te6edf3PYPROJECT Tff7b72= Te6edf3ROOT Tff7b72/ Ta5d6ff"Ta5d6ffpyproject.tomlTa5d6ff"

Te6edf3TEMPLATE Tff7b72= Ta5d6ff'''Ta5d6ff"Ta5d6ff"Ta5d6ff"Ta5d6ffPackage version and build metadata.

Ta5d6ffValues are overwritten by make meta / make build when building from git.
Ta5d6ffDefaults keep editable installs and tests working without a Makefile bake step.
Ta5d6ff"Ta5d6ff"Ta5d6ff"

Ta5d6fffrom __future__ import annotations

Ta5d6ff__version__ = Tffd700{version!r}

Ta5d6ffBUILD_DATE = Tffd700{build_date!r}

Ta5d6ffGIT_COMMIT = Tffd700{commit!r}

Ta5d6ffGIT_DIRTY = Tffd700{dirty!r}


Ta5d6ffdef version_string() -> str:
Ta5d6ff Ta5d6ff"Ta5d6ff"Ta5d6ff"Ta5d6ffSingle-line version for CLI -v / --version.Ta5d6ff"Ta5d6ff"Ta5d6ff"
Ta5d6ff parts = [fTa5d6ff"Ta5d6ffrns-filesync Ta5d6ff{{Ta5d6ff__version__}}Ta5d6ff"Ta5d6ff]
Ta5d6ff if BUILD_DATE and BUILD_DATE != Ta5d6ff"Ta5d6ffunknownTa5d6ff"Ta5d6ff:
Ta5d6ff parts.append(fTa5d6ff"Ta5d6ffbuilt Ta5d6ff{{Ta5d6ffBUILD_DATE}}Ta5d6ff"Ta5d6ff)
Ta5d6ff if GIT_COMMIT and GIT_COMMIT != Ta5d6ff"Ta5d6ffunknownTa5d6ff"Ta5d6ff:
Ta5d6ff dirty = Ta5d6ff"Ta5d6ff+Ta5d6ff"Ta5d6ff if GIT_DIRTY in Ta5d6ff{{Ta5d6ff"Ta5d6ff1Ta5d6ff"Ta5d6ff, Ta5d6ff"Ta5d6fftrueTa5d6ff"Ta5d6ff, Ta5d6ff"Ta5d6ffyesTa5d6ff"Ta5d6ff, Ta5d6ff"Ta5d6ffdirtyTa5d6ff"Ta5d6ff}} else Ta5d6ff"Ta5d6ff"
Ta5d6ff parts.append(fTa5d6ff"Ta5d6ffcommit Ta5d6ff{{Ta5d6ffGIT_COMMIT}}Ta5d6ff{{Ta5d6ffdirty}}Ta5d6ff"Ta5d6ff)
Ta5d6ff return Ta5d6ff"Ta5d6ff | Ta5d6ff"Ta5d6ff.join(parts)


Ta5d6ffdef version_info() -> dict[str, str]:
Ta5d6ff return Ta5d6ff{{
Ta5d6ff Ta5d6ff"Ta5d6ffversionTa5d6ff"Ta5d6ff: __version__,
Ta5d6ff Ta5d6ff"Ta5d6ffbuild_dateTa5d6ff"Ta5d6ff: BUILD_DATE,
Ta5d6ff Ta5d6ff"Ta5d6ffgit_commitTa5d6ff"Ta5d6ff: GIT_COMMIT,
Ta5d6ff Ta5d6ff"Ta5d6ffgit_dirtyTa5d6ff"Ta5d6ff: GIT_DIRTY,
Ta5d6ff }}
Ta5d6ff'''


Tff7b72def Td2a8ff_versionTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657strTb4b4b4:
Tff7b72if Ta5d6ff"Ta5d6ffVERSIONTa5d6ff" Tff7b72in Te6edf3osTff7b72.Td2a8ffenvironTb4b4b4:
Tff7b72return Te6edf3osTff7b72.Td2a8ffenvironTb4b4b4[Ta5d6ff"Ta5d6ffVERSIONTa5d6ff"Tb4b4b4]
Tff7b72tryTb4b4b4:
Tff7b72import T7ee787tomllib

Te6edf3data Tff7b72= Te6edf3tomllibTff7b72.Td2a8ffloadsTb4b4b4(Te6edf3PYPROJECTTff7b72.Td2a8ffread_textTb4b4b4(Te6edf3encodingTff7b72=Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72return Tffa657strTb4b4b4(Te6edf3dataTb4b4b4[Ta5d6ff"Ta5d6ffprojectTa5d6ff"Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6ffversionTa5d6ff"Tb4b4b4]Tb4b4b4)
Tff7b72except Tf85149ExceptionTb4b4b4:
Tff7b72from T7ee787rns_filesyncT7ee787.T7ee787_meta Tff7b72import Te6edf3__version__

Tff7b72return Te6edf3__version__


Tff7b72def Td2a8ff_git_commitTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657strTb4b4b4:
Tff7b72if Ta5d6ff"Ta5d6ffGIT_COMMITTa5d6ff" Tff7b72in Te6edf3osTff7b72.Td2a8ffenvironTb4b4b4:
Tff7b72return Te6edf3osTff7b72.Td2a8ffenvironTb4b4b4[Ta5d6ff"Ta5d6ffGIT_COMMITTa5d6ff"Tb4b4b4]
Tff7b72tryTb4b4b4:
Tff7b72return Te6edf3subprocessTff7b72.Td2a8ffcheck_outputTb4b4b4(
Tb4b4b4[Ta5d6ff"Ta5d6ffgitTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffrev-parseTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff--shortTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffHEADTa5d6ff"Tb4b4b4]Tb4b4b4,
Te6edf3cwdTff7b72=Te6edf3ROOTTb4b4b4,
Te6edf3stderrTff7b72=Te6edf3subprocessTff7b72.Td2a8ffDEVNULLTb4b4b4,
Te6edf3textTff7b72=Tff7b72TrueTb4b4b4,
Tb4b4b4)Tff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)
Tff7b72except Tb4b4b4(Te6edf3subprocessTff7b72.Td2a8ffCalledProcessErrorTb4b4b4, Tf85149FileNotFoundErrorTb4b4b4)Tb4b4b4:
Tff7b72return Ta5d6ff"Ta5d6ffunknownTa5d6ff"


Tff7b72def Td2a8ff_git_dirtyTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657strTb4b4b4:
Tff7b72if Ta5d6ff"Ta5d6ffGIT_DIRTYTa5d6ff" Tff7b72in Te6edf3osTff7b72.Td2a8ffenvironTb4b4b4:
Tff7b72return Te6edf3osTff7b72.Td2a8ffenvironTb4b4b4[Ta5d6ff"Ta5d6ffGIT_DIRTYTa5d6ff"Tb4b4b4]
Tff7b72tryTb4b4b4:
Te6edf3subprocessTff7b72.Td2a8ffcheck_callTb4b4b4(
Tb4b4b4[Ta5d6ff"Ta5d6ffgitTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdiffTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff--quietTa5d6ff"Tb4b4b4]Tb4b4b4,
Te6edf3cwdTff7b72=Te6edf3ROOTTb4b4b4,
Te6edf3stderrTff7b72=Te6edf3subprocessTff7b72.Td2a8ffDEVNULLTb4b4b4,
Tb4b4b4)
Tff7b72return Ta5d6ff"Ta5d6ff0Ta5d6ff"
Tff7b72except Tb4b4b4(Te6edf3subprocessTff7b72.Td2a8ffCalledProcessErrorTb4b4b4, Tf85149FileNotFoundErrorTb4b4b4)Tb4b4b4:
Tff7b72return Ta5d6ff"Ta5d6ff1Ta5d6ff"


Tff7b72def Td2a8ff_build_dateTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657strTb4b4b4:
Tff7b72if Ta5d6ff"Ta5d6ffBUILD_DATETa5d6ff" Tff7b72in Te6edf3osTff7b72.Td2a8ffenvironTb4b4b4:
Tff7b72return Te6edf3osTff7b72.Td2a8ffenvironTb4b4b4[Ta5d6ff"Ta5d6ffBUILD_DATETa5d6ff"Tb4b4b4]
Tff7b72from T7ee787datetime Tff7b72import Te6edf3datetimeTb4b4b4, Te6edf3timezone

Tff7b72return Te6edf3datetimeTff7b72.Td2a8ffnowTb4b4b4(Te6edf3timezoneTff7b72.Td2a8ffutcTb4b4b4)Tff7b72.Td2a8ffstrftimeTb4b4b4(Ta5d6ff"Ta5d6ff%Ta5d6ffY-Ta5d6ff%Ta5d6ffm-Tffd700%dTa5d6ffTTa5d6ff%Ta5d6ffH:Ta5d6ff%Ta5d6ffM:Ta5d6ff%Ta5d6ffSZTa5d6ff"Tb4b4b4)


Tff7b72def Td2a8ffmainTb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657intTb4b4b4:
Te6edf3version Tff7b72= Te6edf3_versionTb4b4b4(Tb4b4b4)
Te6edf3build_date Tff7b72= Te6edf3_build_dateTb4b4b4(Tb4b4b4)
Te6edf3commit Tff7b72= Te6edf3_git_commitTb4b4b4(Tb4b4b4)
Te6edf3dirty Tff7b72= Te6edf3_git_dirtyTb4b4b4(Tb4b4b4)
Te6edf3METATff7b72.Td2a8ffwrite_textTb4b4b4(
Te6edf3TEMPLATETff7b72.Td2a8ffformatTb4b4b4(
Te6edf3versionTff7b72=Te6edf3versionTb4b4b4,
Te6edf3build_dateTff7b72=Te6edf3build_dateTb4b4b4,
Te6edf3commitTff7b72=Te6edf3commitTb4b4b4,
Te6edf3dirtyTff7b72=Te6edf3dirtyTb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3encodingTff7b72=Ta5d6ff"Ta5d6ffutf-8Ta5d6ff"Tb4b4b4,
Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffBaked version=Tffd700{Te6edf3versionTffd700}Ta5d6ff date=Tffd700{Te6edf3build_dateTffd700}Ta5d6ff commit=Tffd700{Te6edf3commitTffd700}Ta5d6ff dirty=Tffd700{Te6edf3dirtyTffd700}Ta5d6ff"Tb4b4b4)
Tff7b72return T79c0ff0


Tff7b72if Tff7b72__name__ Tff7b72== Ta5d6ff"Ta5d6ff__main__Ta5d6ff"Tb4b4b4:
Te6edf3sysTff7b72.Td2a8ffexitTb4b4b4(Te6edf3mainTb4b4b4(Tb4b4b4)Tb4b4b4)


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────